﻿namespace Project1
{
	/// <summary>
	/// An interface for heuristic functions.
	/// </summary>
	public interface IHeuristic
	{
		/// <summary>
		/// Estimates the cost from the supplied <paramref name="state"/> to the goal.
		/// </summary>
		/// <param name="problem">The problem.</param>
		/// <param name="state">The state.</param>
		/// <returns>The estimated cost</returns>
		int EstimateCost(IProblem problem, State state);
	}
}
